# Run this app with `python app.py` and
# visit http://127.0.0.1:8050/ in your web browser.


from dash import Dash, html
import pandas as pd

df = pd.read_csv('./dash_demo/data.csv')


def generate_table(dataframe, max_rows=20):
    """
    生成HTML表格。
    
    Args:
        dataframe (DataFrame): 要生成表格的数据框。
        max_rows (int, optional): 最大行数，默认为20。生成表格时，如果数据框的行数超过这个值，则只显示前max_rows行。
    
    Returns:
        Table: 返回生成的HTML表格对象。
    
    """
    return html.Table([
        # 表格头部
        html.Thead(
            html.Tr([html.Th(col) for col in dataframe.columns])
        ),
        # 表格主体
        html.Tbody([
            # 遍历数据框的每一行
            html.Tr([
                # 遍历数据框的每一列
                html.Td(dataframe.iloc[i][col]) for col in dataframe.columns
            ]) for i in range(min(len(dataframe), max_rows))
        ])
    ])


app = Dash(__name__)

app.layout = html.Div([
    html.H4(children='US Agriculture Exports (2011)'),
    generate_table(df),
    generate_table(df,10),## 生成表格，只显示前10行
])

if __name__ == '__main__':
    app.run(debug=True)
